﻿using System;
using System.Data;

namespace ObjectManager
{
    public class SinhVien : ManagerComponent
    {
        private SinhVienDAO SinhVienDAO { get; set; }

        public SinhVienDTO ThongTin { get; set; }

        private void Initialize()
        {
            ThongTin = new SinhVienDTO();
            SinhVienDAO = new SinhVienDAO();
        }

        public SinhVien()
        {
            Initialize();
        }

        public SinhVien(string Ten)
        {
            Initialize();
            ThongTin.Ten = Ten;
        }

        public SinhVien(string Ten, string Lop)
        {
            Initialize();
            ThongTin.Ten = Ten;
            ThongTin.Lop = Lop;
        }

        public override int Add()
        {
            SinhVienDAO.SinhVienDTO = ThongTin;
            ThongTin = SinhVienDAO.SinhVienDTO;
            return SinhVienDAO.Insert();
        }

        public override int Update()
        {
            SinhVienDAO.SinhVienDTO = ThongTin;
            return SinhVienDAO.Update();
        }

        public override int Remove()
        {
            SinhVienDAO.SinhVienDTO = ThongTin;
            return SinhVienDAO.Delete();
        }

        public bool Info(string MaSinhVien)
        {
            SinhVienDAO.SinhVienDTO.Ma = MaSinhVien;
            bool result = SinhVienDAO.Search();
            ThongTin = SinhVienDAO.SinhVienDTO;
            return result;
        }

        public DataTable List()
        {
            return SinhVienDAO.List();
        }

        public string MaSinhVien(string lop)
        {
            return SinhVienDAO.MaSinhVien(lop);
        }

        public DataTable Search(bool ma)
        {
            SinhVienDAO.SinhVienDTO = ThongTin;
            return SinhVienDAO.Search(ma);
        }
    }
}
